在IDEA中使用Docker启动Spring Boot服务直接发布到远程服务器

Docker开启远程访问

[root@Charlie docker]# vim /usr/lib/systemd/system/docker.service
将原本上面这行改为下面这行(搜到的大量文档都是2375端口,可能是官方教程?索性抄一下吧,吐槽一下不细究)
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock

重启docker

systemctl daemon-reload #加载docker守护线程
systemctl restart docker #重启docker

开放端口

本篇是百度云服务器测试的,其他供应商也大致相同,首先需要在管理服务器后台页面操作安全组相关操作,各个平台不尽相同,其次服务器如果不想关闭防火墙需要另外开放端口

开放端口方法点此跳转

创建一个基础的Spring Boot项目

创建基础的Spring Boot项目点此跳转

创建一个Dockerfile文件,放在项目的根目录下,内容如下
Dockerfile运行Spring Boot项目的参数等详情点此跳转
FROM anapsix/alpine-java
VOLUME /tmp
ADD target/demo-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE 8080

MAVEN将项目打成jar包

右侧有个tab是maven,点击package按钮会生成jar包,每次改代码都需要clean然后再package

打包

IDEA安装插件

右侧没安装过插件的话会有个Install按钮,安装之后重启idea

IDEA安装Docker插件

IDEA配置docker

如下图进行配置,在engine API URL 填入自己服务器对应的 tcp://ip:port 如果下方出现Connection successful的字样,表示连接成功

IDEA配置docker

添加Docker启动配置

点击Edit Configurations···

启动配置

然后点击右上角加号,选择Docker的Dockerfile

启动配置

按照下图配置,镜像和容器名字取自己喜欢的,Bind ports 此处的配置指的是将容器中的8080端口代理到宿主机的8765端口,然后启动之后通过宿主机的ip:8765即可访问到项目

启动配置

创建镜像并启动

找到刚刚创建的Dockerfile文件,右上角会有启动创建镜像和启动容器的按钮

创建镜像并启动

容器启动之后控制台能看到具体的运行信息,也可以管理镜像和容器的开始启动,非常方便

容器启动控制台

访问接口

刚刚Docker启动配置中将docker容器中的8080端口代理到宿主机的8765端口
这里访问 ip:8765/test 就可以查看到项目接口细信息

访问页面

服务器上的Docker相关信息

[root@Charile docker]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
aiguoba/demo          v1                  077953297ce3        3 minutes ago       159MB
[root@Charile docker]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
5b78d7f5d654        077953297ce3        "java -Djava.securit…"   3 minutes ago       Up 3 minutes        0.0.0.0:8765->8080/tcp    demo_v1